home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2003 May / cmycha200305.iso / MutantStorm / setup_mutantstorm_demo.exe / {app} / script / pylon_chooser.lua < prev    next >
Text File  |  2003-03-11  |  24KB  |  602 lines

  1.  
  2. function roomer_preload()
  3.  
  4. -- leave me
  5.     local actor = ACTOR_preload()
  6. -- leave me
  7.  
  8.     actor[cp_actor_name]        = "roomer"
  9.     actor[cp_model_dir]            = "rooms"
  10.     actor[cp_model_name]        = "fence-1"
  11.  
  12.     actor[cp_actor_type]            = cat_ground
  13.     actor[cp_i_collide_with_beasties]    = 0
  14.     actor[cp_these_collide_with_me]        = 0
  15.  
  16. -- leave me
  17.     c_preload_model( actor )
  18. -- leave me
  19.  
  20. end
  21.  
  22. function roomer_launch( anim_shape, start_dirn )
  23.     local room = ACTOR_PreLaunch( "roomer" )
  24.     room:setall( 0.0, 0.0, 0.0, start_dirn, 140.0, 0.0, 0.0 )
  25.     room:launch()
  26.     c_room_goto( anim_shape, 100.0 )
  27. end
  28.  
  29.  
  30. room_bone_names = {}
  31. attach_bones = {}
  32. attach_names = {}
  33. fb = "fencebone"
  34.  
  35. function load_pylon( pylon, bmphue, loadnum )
  36.     pylon = format( "pylon-%s", pylon )
  37.     pcolor = bmphue
  38.     pylon_bmp_swap_a1 = nil
  39.     pylon_bmp_swap_a2 = nil
  40.     pylon_bmp_swap_b1 = nil
  41.     pylon_bmp_swap_b2 = nil
  42.  
  43.     if loadnum > 1 then
  44.         if cur_level_num > 100 then
  45.             pylon_bmp_swap_a1 = "pylon-wall_edges.bmp"
  46.             pylon_bmp_swap_a2 = format( "pylon-wall_edges_%d.bmp", loadnum )
  47.             pylon_bmp_swap_b1 = "py-1_body.bmp"
  48.             pylon_bmp_swap_b2 = format( "py-1_body_%d.bmp", loadnum )
  49.         end
  50.     end
  51.  
  52.     dofile_lua( pylon )
  53. end
  54.  
  55. function set_pylon_bitmap_swap()
  56.     if pylon_bmp_swap_a1 ~= nil then
  57.         c_change_bitmap( pylon_bmp_swap_a1, pylon_bmp_swap_a2 )
  58.     end
  59.     if pylon_bmp_swap_b1 ~= nil then
  60.         c_change_bitmap( pylon_bmp_swap_b1, pylon_bmp_swap_b2 )
  61.     end
  62. end
  63.  
  64. function c_pylon_attach( pylon, bone1, bone2, sx, sy, sz, bmphue )
  65.     if cur_level_num < 101 then
  66.         load_pylon( pylon, bmphue, 0 )
  67.     end
  68.     pylon = format( "pylon-%s", pylon )
  69. --    pcolor = bmphue
  70. --    dofile_lua( pylon )
  71.  
  72.     local hue = c_zrand(-25.0,25.0)
  73.     for bone = bone1, bone2, 1 do
  74.         bonename = format( "pylon%02d", bone )
  75.         c_room_attach ( pylon, bonename, sx, sy, sz, hue )
  76.         attach_names[bone] = format( "%s_%s", bonename, pylon )
  77.     end
  78. end
  79.  
  80. function c_fizz_attach( fizz, bone1, bone2, fizz_scale, bmphue )
  81.     fizz = format( "fencefizz-%s", fizz )
  82.     pcolor = bmphue
  83.     dofile_lua( fizz )
  84.     local hue = 0.0
  85.     for bone = bone1, bone2, 1 do
  86.         local b1 = attach_names[bone]
  87.         local b2 = bone+1
  88.         if b2 > 24 then
  89.             b2 = 1
  90.         end
  91.         b2 = attach_names[b2]
  92.         c_add_fizz_to_room( fizz, b1, fb, b2, fb, fizz_scale, hue )
  93.     end
  94. end
  95.  
  96.  
  97. function pylon_start( anim_shape, start_dirn, level_ani, level_ani_speed )
  98.     -- start room
  99.     roomer_preload()
  100.     -- is there a random anim to play?
  101.     if level_ani ~= nil then
  102.         if level_ani_speed == nil then
  103.             level_ani_speed = 100.0
  104.         end
  105.         c_set_random_anim( level_ani, level_ani_speed, level_ani_speed, 0.0, 0.0 )
  106.     end
  107.     if start_dirn == nil then
  108.         start_dirn = 90.0
  109.     end
  110.     -- set shape
  111.     roomer_launch( anim_shape, start_dirn )
  112.     -- end room
  113.  
  114. --    local flamer = c_zrand(0.0,180.0)
  115.     local h1 = 0.0
  116.     local h2 = 0.0
  117.     local h3 = 0.0
  118.     local h4 = 0.0
  119.  
  120.     -- width
  121.     local scale_1_x = c_zrand(100.0,350.0)
  122.     -- depth
  123.     local scale_1_y = c_zrand(50.0,150.0)
  124.     -- depth into screen
  125.     local scale_1_z = c_zrand(50.0,100.0)
  126.  
  127.     -- width
  128.     local scale_2_x = c_zrand(100.0,350.0)
  129.     -- depth
  130.     local scale_2_y = c_zrand(50.0,150.0)
  131.     -- depth into screen
  132.     local scale_2_z = c_zrand(50.0,100.0)
  133.  
  134.     -- width
  135.     local scale_3_x = c_zrand(100.0,350.0)
  136.     -- depth
  137.     local scale_3_y = c_zrand(50.0,150.0)
  138.     -- depth into screen
  139.     local scale_3_z = c_zrand(50.0,100.0)
  140.  
  141.     local pylon_choice = 3
  142.     local pylon_1 = "0_0"
  143.     local pylon_2 = "0_0"
  144.     local pylon_3 = "0_0"
  145.     local pylon_names = {}
  146.  
  147.     if demo_level == 1 then
  148.         if gfx_level == 0 then
  149. pylon_names = { "2_1", "2_2", "2_3", "1_1" }
  150.         elseif gfx_level == 1 then
  151. pylon_names = { "5_1", "2_1", "2_2", "2_3", "3_1", "1_1", "1_2", "1_3" }
  152.         else
  153. pylon_names = { "5_1", "2_1", "2_2", "2_3", "3_1", "1_1", "1_2", "1_3", "4_2", "4_3", "4_4" }
  154.         end
  155.     else
  156.         if gfx_level == 0 then
  157. pylon_names = { "4_1", "2_1", "2_2", "2_3", "1_1" }
  158.         elseif gfx_level == 1 then
  159. pylon_names = { "5_1", "4_1", "2_1", "2_2", "2_3", "3_1", "1_1", "1_2", "1_3", "5_3" }
  160.         else
  161. pylon_names = { "5_1", "4_1", "2_1", "2_2", "2_3", "3_1", "1_1", "1_2", "1_3", "4_2", "5_2", "6_1", "6_2", "4_3", "4_4", "4_5", "6_3", "5_3" }
  162.         end
  163.     end
  164.  
  165.     local max_num_pylons = getn( pylon_names )
  166.     if cur_level_num < 101 then
  167.         c_print( "pylons=", max_num_pylons )
  168.     end
  169.  
  170.     pylon_choice = c_zrand_int( max_num_pylons ) + 1
  171.     pylon_1 = pylon_names[pylon_choice]
  172.     if pylon_1 == "5_1" or pylon_1 == "5_2" or pylon_1 == "5_3" then
  173.         scale_1_x = scale_1_z
  174.     elseif pylon_1 == "3_1" then
  175.         scale_1_x = 75.0
  176.         scale_1_y = 75.0
  177.         scale_1_z = 75.0
  178.     end
  179.  
  180.     pylon_choice = c_zrand_int( max_num_pylons ) + 1
  181.     pylon_2 = pylon_names[pylon_choice]
  182.     if pylon_2 == "5_1" or pylon_2 == "5_2" or pylon_2 == "5_3" then
  183.         scale_2_x = scale_2_z
  184.     elseif pylon_2 == "3_1" then
  185.         scale_2_x = 75.0
  186.         scale_2_y = 75.0
  187.         scale_2_z = 75.0
  188.     end
  189.  
  190.     pylon_choice = c_zrand_int( max_num_pylons ) + 1
  191.     pylon_3 = pylon_names[pylon_choice]
  192.     if pylon_3 == "5_1" or pylon_3 == "5_2" or pylon_3 == "5_3" then
  193.         scale_3_x = scale_3_z
  194.     elseif pylon_3 == "3_1" then
  195.         scale_3_x = 75.0
  196.         scale_3_y = 75.0
  197.         scale_3_z = 75.0
  198.     end
  199.  
  200. --    local pylon_1 = "1_4"
  201. --    local pylon_2 = "1_4"
  202. --    local pylon_3 = "1_4"
  203.  
  204.     local pylon_template = {}
  205.     local pylon_order_choice = c_zrand_int( 12 ) + 1
  206.  
  207.     if anim_shape == "square-1" then
  208.         if pylon_order_choice == 1 then
  209.                 pylon_template = { 1,1,2,3,3,2,1,1,1,2,2,1,1,1,2,3,3,2,1,1,1,2,2,1 }
  210.         elseif pylon_order_choice == 2 then
  211.                 pylon_template = { 1,2,1,3,3,1,2,1,2,3,3,2,1,2,1,3,3,1,2,1,2,3,3,2 }
  212.         elseif pylon_order_choice == 3 then
  213.                 pylon_template = { 1,1,1,1,1,1,1,1,2,3,3,2,1,1,1,1,1,1,1,1,2,3,3,2 }
  214.         elseif pylon_order_choice == 4 then
  215.                 pylon_template = { 1,1,1,2,2,1,1,1,3,3,3,3,1,1,1,2,2,1,1,1,3,3,3,3 }
  216.         elseif pylon_order_choice == 5 then
  217.                 pylon_template = { 1,1,1,2,2,1,1,1,2,2,3,3,3,3,1,1,1,1,3,3,3,3,2,2 }
  218.         elseif pylon_order_choice == 6 then
  219.                 pylon_template = { 1,1,1,1,2,2,2,2,3,3,3,3,1,1,1,1,2,2,2,2,3,3,3,3 }
  220.         elseif pylon_order_choice == 7 then
  221.                 pylon_template = { 1,2,3,1,1,3,2,1,2,3,3,2,1,2,3,1,1,3,2,1,2,3,3,2 }
  222.         elseif pylon_order_choice == 8 then
  223.                 pylon_template = { 1,1,2,2,2,2,1,1,1,2,2,2,3,3,1,3,3,1,3,3,2,2,2,1 }
  224.         elseif pylon_order_choice == 9 then
  225.                 pylon_template = { 1,2,3,3,3,3,2,1,2,3,3,2,1,2,3,3,3,3,2,1,2,3,3,2 }
  226.         elseif pylon_order_choice == 10 then
  227.                 pylon_template = { 1,2,2,1,1,2,2,1,3,3,3,3,1,2,2,1,1,2,2,1,3,3,3,3 }
  228.         elseif pylon_order_choice == 11 then
  229.                 pylon_template = { 1,1,2,2,2,2,1,1,1,3,3,1,1,1,2,2,2,2,1,1,1,3,3,1 }
  230.         elseif pylon_order_choice == 12 then
  231.                 pylon_template = { 1,1,1,2,2,1,1,1,2,2,1,1,1,3,3,3,3,3,3,1,1,1,2,2 }
  232.         end
  233.  
  234.     elseif anim_shape == "cornered-1" then
  235.         if pylon_order_choice == 1 then
  236.                 pylon_template = { 2,3,3,3,3,3,2,1,1,1,1,1,2,3,3,3,3,3,2,1,1,1,1,1 }
  237.         elseif pylon_order_choice == 2 then
  238.                 pylon_template = { 2,1,3,1,3,1,2,3,1,3,1,3,2,1,3,1,3,1,2,3,1,3,1,3 }
  239.         elseif pylon_order_choice == 3 then
  240.                 pylon_template = { 2,2,3,3,3,2,2,1,1,1,1,1,2,2,3,3,3,2,2,1,1,1,1,1 }
  241.         elseif pylon_order_choice == 4 then
  242.                 pylon_template = { 1,1,2,3,3,3,3,3,3,2,1,1,1,1,2,3,3,3,3,3,3,2,1,1 }
  243.         elseif pylon_order_choice == 5 then
  244.                 pylon_template = { 1,1,2,2,2,1,1,3,3,3,3,3,1,1,2,2,2,1,1,3,3,3,3,3 }
  245.         elseif pylon_order_choice == 6 then
  246.                 pylon_template = { 1,2,2,2,2,2,1,3,3,3,3,2,2,1,3,3,3,1,2,2,3,3,3,3 }
  247.         elseif pylon_order_choice == 7 then
  248.                 pylon_template = { 1,1,2,2,2,1,1,1,3,3,3,1,1,1,2,2,2,1,1,1,3,3,3,1 }
  249.         elseif pylon_order_choice == 8 then
  250.                 pylon_template = { 1,1,2,2,2,1,1,1,1,1,2,2,3,3,3,3,3,3,3,2,2,1,1,1 }
  251.         elseif pylon_order_choice == 9 then
  252.                 pylon_template = { 1,2,1,3,1,2,1,3,1,2,1,3,1,2,1,3,1,2,1,3,1,2,1,3 }
  253.         elseif pylon_order_choice == 10 then
  254.                 pylon_template = { 1,2,1,2,1,2,1,3,1,3,1,3,1,2,1,2,1,2,1,3,1,3,1,3 }
  255.         elseif pylon_order_choice == 11 then
  256.                 pylon_template = { 1,2,3,3,3,2,1,2,1,2,1,2,1,2,3,3,3,2,1,2,1,2,1,2 }
  257.         elseif pylon_order_choice == 12 then
  258.                 pylon_template = { 1,1,2,2,1,1,3,3,1,1,2,2,1,1,3,3,1,1,2,2,1,1,3,3 }
  259.         end
  260.  
  261.     elseif anim_shape == "hoval-1" then
  262.         if pylon_order_choice == 1 then
  263.                 pylon_template = { 1,1,2,2,2,2,1,1,3,3,3,3,1,1,2,2,2,2,1,1,3,3,3,3 }
  264.         elseif pylon_order_choice == 2 then
  265.                 pylon_template = { 1,1,2,3,3,2,1,1,2,3,3,2,1,1,2,3,3,2,1,1,2,3,3,2 }
  266.         elseif pylon_order_choice == 3 then
  267.                 pylon_template = { 1,1,2,2,3,3,2,2,1,1,1,1,1,1,2,2,3,3,2,2,1,1,1,1 }
  268.         elseif pylon_order_choice == 4 then
  269.                 pylon_template = { 1,1,1,2,2,1,1,1,3,3,3,3,1,1,1,2,2,1,1,1,3,3,3,3 }
  270.         elseif pylon_order_choice == 5 then
  271.                 pylon_template = { 1,1,2,1,1,2,1,1,2,1,1,3,3,3,3,1,1,3,3,3,3,1,1,2 }
  272.         elseif pylon_order_choice == 6 then
  273.                 pylon_template = { 1,1,1,1,1,1,1,1,2,3,3,2,1,1,1,1,1,1,1,1,2,3,3,2 }
  274.         elseif pylon_order_choice == 7 then
  275.                 pylon_template = { 1,2,1,2,2,1,2,1,3,3,3,3,1,2,1,2,2,1,2,1,3,3,3,3 }
  276.         elseif pylon_order_choice == 8 then
  277.                 pylon_template = { 1,2,1,2,2,1,2,1,2,1,1,2,1,2,1,2,2,1,2,1,2,1,1,2 }
  278.         elseif pylon_order_choice == 9 then
  279.                 pylon_template = { 1,2,1,3,3,1,2,1,2,3,3,2,1,2,1,3,3,1,2,1,2,3,3,2 }
  280.         elseif pylon_order_choice == 10 then
  281.                 pylon_template = { 1,1,1,2,2,2,1,1,1,3,3,3,1,1,1,2,2,2,1,1,1,3,3,3 }
  282.         elseif pylon_order_choice == 11 then
  283.                 pylon_template = { 1,1,2,2,2,2,1,1,1,1,3,3,3,3,1,1,1,1,3,3,3,3,1,1 }
  284.         elseif pylon_order_choice == 12 then
  285.                 pylon_template = { 1,2,3,3,3,3,2,1,2,3,3,2,1,2,3,3,3,3,2,1,2,3,3,3 }
  286.         end
  287.  
  288.     elseif anim_shape == "square-2" then
  289.         if pylon_order_choice == 1 then
  290.                 pylon_template = { 1,1,2,0,0,2,1,1,1,2,2,1,1,1,2,0,0,2,1,1,1,2,2,1 }
  291.         elseif pylon_order_choice == 2 then
  292.                 pylon_template = { 1,2,1,0,0,1,2,1,2,3,3,2,1,2,1,0,0,1,2,1,2,3,3,2 }
  293.         elseif pylon_order_choice == 3 then
  294.                 pylon_template = { 1,1,1,0,0,1,1,1,2,3,3,2,1,1,1,0,0,1,1,1,2,3,3,2 }
  295.         elseif pylon_order_choice == 4 then
  296.                 pylon_template = { 1,1,1,0,0,1,1,1,3,3,3,3,1,1,1,0,0,1,1,1,3,3,3,3 }
  297.         elseif pylon_order_choice == 5 then
  298.                 pylon_template = { 1,1,1,0,0,1,1,1,2,2,3,3,3,3,1,0,0,1,3,3,3,3,2,2 }
  299.         elseif pylon_order_choice == 6 then
  300.                 pylon_template = { 1,1,1,0,0,2,2,2,3,3,3,3,1,1,1,0,0,2,2,2,3,3,3,3 }
  301.         elseif pylon_order_choice == 7 then
  302.                 pylon_template = { 1,2,3,0,0,3,2,1,2,3,3,2,1,2,3,0,0,3,2,1,2,3,3,2 }
  303.         elseif pylon_order_choice == 8 then
  304.                 pylon_template = { 1,1,2,0,0,2,1,1,1,2,2,2,3,3,1,0,0,1,3,3,2,2,2,1 }
  305.         elseif pylon_order_choice == 9 then
  306.                 pylon_template = { 1,2,3,0,0,3,2,1,2,3,3,2,1,2,3,0,0,3,2,1,2,3,3,2 }
  307.         elseif pylon_order_choice == 10 then
  308.                 pylon_template = { 1,2,2,0,0,2,2,1,3,3,3,3,1,2,2,0,0,2,2,1,3,3,3,3 }
  309.         elseif pylon_order_choice == 11 then
  310.                 pylon_template = { 1,1,2,0,0,2,1,1,1,3,3,1,1,1,2,0,0,2,1,1,1,3,3,1 }
  311.         elseif pylon_order_choice == 12 then
  312.                 pylon_template = { 1,1,1,0,0,1,1,1,2,2,1,1,1,3,3,0,0,3,3,1,1,1,2,2 }
  313.         end
  314.  
  315.     elseif anim_shape == "hoval-spike" then
  316.         if pylon_order_choice == 1 then
  317.                 pylon_template = { 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 }
  318.         elseif pylon_order_choice == 2 then
  319.                 pylon_template = { 1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0 }
  320.         elseif pylon_order_choice == 3 then
  321.                 pylon_template = { 1,0,2,0,2,0,1,0,3,0,3,0,1,0,2,0,2,0,1,0,3,0,3,0 }
  322.         elseif pylon_order_choice == 4 then
  323.                 pylon_template = { 1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0 }
  324.         elseif pylon_order_choice == 5 then
  325.                 pylon_template = { 1,0,2,0,3,0,1,0,2,0,3,0,1,0,2,0,3,0,1,0,2,0,3,0 }
  326.         elseif pylon_order_choice == 6 then
  327.                 pylon_template = { 1,0,1,0,2,0,2,0,3,0,3,0,1,0,1,0,2,0,2,0,3,0,3,0 }
  328.         elseif pylon_order_choice == 7 then
  329.                 pylon_template = { 1,0,2,0,2,0,1,0,3,0,3,0,1,0,2,0,2,0,1,0,3,0,3,0 }
  330.         elseif pylon_order_choice == 8 then
  331.                 pylon_template = { 1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0 }
  332.         elseif pylon_order_choice == 9 then
  333.                 pylon_template = { 1,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0 }
  334.         elseif pylon_order_choice == 10 then
  335.                 pylon_template = { 1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0 }
  336.         elseif pylon_order_choice == 11 then
  337.                 pylon_template = { 1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0 }
  338.         elseif pylon_order_choice == 12 then
  339.                 pylon_template = { 1,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0 }
  340.         end
  341.  
  342.     elseif anim_shape == "s-shape-1" then
  343.         if pylon_order_choice == 1 then
  344.                 pylon_template = { 1,1,2,2,1,1,1,0,0,1,1,1,1,1,2,2,1,1,1,0,0,1,1,1 }
  345.         elseif pylon_order_choice == 2 then
  346.                 pylon_template = { 1,3,2,2,3,1,1,0,0,1,1,1,1,3,2,2,3,1,1,0,0,1,1,1 }
  347.         elseif pylon_order_choice == 3 then
  348.                 pylon_template = { 3,3,2,2,3,3,1,0,0,1,1,1,3,3,2,2,3,3,1,0,0,1,1,1 }
  349.         elseif pylon_order_choice == 4 then
  350.                 pylon_template = { 3,2,2,2,2,3,3,0,0,1,1,3,3,2,2,2,2,3,3,0,0,1,1,3 }
  351.         elseif pylon_order_choice == 5 then
  352.                 pylon_template = { 1,2,2,2,2,1,1,0,0,1,1,1,1,2,2,2,2,1,1,0,0,1,1,1 }
  353.         elseif pylon_order_choice == 6 then
  354.                 pylon_template = { 2,1,1,1,1,2,3,0,0,1,2,3,2,1,1,1,1,2,3,0,0,1,2,3 }
  355.         elseif pylon_order_choice == 7 then
  356.                 pylon_template = { 2,2,3,3,2,2,3,0,0,1,2,3,2,2,3,3,2,2,3,0,0,1,2,3 }
  357.         elseif pylon_order_choice == 8 then
  358.                 pylon_template = { 2,2,1,1,2,2,1,0,0,1,1,1,2,2,1,1,2,2,1,0,0,1,1,1 }
  359.         elseif pylon_order_choice == 9 then
  360.                 pylon_template = { 2,1,3,3,1,2,1,0,0,1,1,1,2,1,3,3,1,2,1,0,0,1,1,1 }
  361.         elseif pylon_order_choice == 10 then
  362.                 pylon_template = { 2,1,3,3,1,2,2,0,0,1,1,2,2,1,3,3,1,2,2,0,0,1,1,2 }
  363.         elseif pylon_order_choice == 11 then
  364.                 pylon_template = { 2,2,1,1,2,2,2,0,0,1,1,2,2,2,1,1,2,2,2,0,0,1,1,2 }
  365.         elseif pylon_order_choice == 12 then
  366.                 pylon_template = { 3,2,1,1,2,3,2,0,0,1,1,2,3,2,1,1,2,3,2,0,0,1,1,2 }
  367.         end
  368.  
  369.     elseif anim_shape == "cross-1" then
  370.         if pylon_order_choice == 1 then
  371.             pylon_template = { 0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1 }
  372.         elseif pylon_order_choice == 2 then
  373.             pylon_template = { 0,0,1,1,1,1,0,0,2,2,2,2,0,0,1,1,1,1,0,0,2,2,2,2 }
  374.         elseif pylon_order_choice == 3 then
  375.             pylon_template = { 0,0,1,2,2,1,0,0,1,2,2,1,0,0,1,2,2,1,0,0,1,2,2,1 }
  376.         elseif pylon_order_choice == 4 then
  377.             pylon_template = { 0,0,1,3,3,1,0,0,2,3,3,2,0,0,1,3,3,1,0,0,2,3,3,2 }
  378.         elseif pylon_order_choice == 5 then
  379.             pylon_template = { 0,0,2,2,1,1,0,0,2,2,1,1,0,0,2,2,1,1,0,0,2,2,1,1 }
  380.         elseif pylon_order_choice == 6 then
  381.             pylon_template = { 0,0,2,2,1,1,0,0,2,2,3,3,0,0,2,2,1,1,0,0,2,2,3,3 }
  382.         elseif pylon_order_choice == 7 then
  383.             pylon_template = { 0,0,1,2,2,1,0,0,1,3,3,1,0,0,1,2,2,1,0,0,1,3,3,1 }
  384.         elseif pylon_order_choice == 8 then
  385.             pylon_template = { 0,0,1,1,1,1,0,0,2,2,2,2,0,0,3,3,3,3,0,0,2,2,2,2 }
  386.         elseif pylon_order_choice == 9 then
  387.             pylon_template = { 0,0,1,2,2,1,0,0,2,1,1,2,0,0,3,2,2,3,0,0,2,1,1,2 }
  388.         elseif pylon_order_choice == 10 then
  389.             pylon_template = { 0,0,1,1,1,1,0,0,2,3,3,2,0,0,1,1,1,1,0,0,2,3,3,2 }
  390.         elseif pylon_order_choice == 11 then
  391.             pylon_template = { 0,0,1,2,2,1,0,0,3,3,3,3,0,0,1,2,2,1,0,0,3,3,3,3 }
  392.         elseif pylon_order_choice == 12 then
  393.             pylon_template = { 0,0,1,2,2,1,0,0,2,1,1,2,0,0,1,2,2,1,0,0,2,1,1,2 }
  394.         end
  395.  
  396.     elseif anim_shape == "tri-1" then
  397.         if pylon_order_choice == 1 then
  398.             pylon_template = { 1,1,1,1,2,2,2,2,1,1,1,1,2,2,2,2,1,1,1,1,2,2,2,2 }
  399.         elseif pylon_order_choice == 2 then
  400.             pylon_template = { 1,2,2,1,3,3,3,3,1,2,2,1,3,3,3,3,1,2,2,1,3,3,3,3 }
  401.         elseif pylon_order_choice == 3 then
  402.             pylon_template = { 1,1,1,1,3,3,3,3,2,2,2,2,3,3,3,3,2,2,2,2,3,3,3,3 }
  403.         elseif pylon_order_choice == 4 then
  404.             pylon_template = { 1,1,1,1,2,2,2,2,1,3,3,1,2,2,2,2,1,3,3,1,2,2,2,2 }
  405.         elseif pylon_order_choice == 5 then
  406.             pylon_template = { 1,3,3,1,2,1,1,2,2,3,3,2,2,1,1,2,2,3,3,2,2,1,1,2 }
  407.         elseif pylon_order_choice == 6 then
  408.             pylon_template = { 1,1,1,1,2,2,2,2,1,1,1,1,3,3,3,3,1,1,1,1,2,2,2,2 }
  409.         elseif pylon_order_choice == 7 then
  410.             pylon_template = { 1,3,3,1,2,3,3,2,1,3,3,1,2,3,3,2,1,3,3,1,2,3,3,2 }
  411.         elseif pylon_order_choice == 8 then
  412.             pylon_template = { 1,1,1,1,2,1,1,2,1,1,1,1,2,1,1,2,1,1,1,1,2,1,1,2 }
  413.         elseif pylon_order_choice == 9 then
  414.             pylon_template = { 1,1,1,1,2,3,3,2,1,1,1,1,2,3,3,2,1,1,1,1,2,3,3,2 }
  415.         elseif pylon_order_choice == 10 then
  416.             pylon_template = { 2,1,1,2,1,1,1,1,2,1,1,2,1,1,1,1,2,1,1,2,1,1,1,1 }
  417.         elseif pylon_order_choice == 11 then
  418.             pylon_template = { 1,1,1,1,2,2,2,3,1,1,1,1,3,3,3,3,1,1,1,1,3,2,2,2 }
  419.         elseif pylon_order_choice == 12 then
  420.             pylon_template = { 1,1,1,1,2,3,2,3,1,1,1,1,2,3,3,2,1,1,1,1,3,2,3,2 }
  421.         end
  422.  
  423.     elseif anim_shape == "circle-1" then
  424.         if pylon_order_choice == 1 then
  425.             pylon_template = { 1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2 }
  426.         elseif pylon_order_choice == 2 then
  427.             pylon_template = { 1,2,3,3,3,2,1,2,3,3,3,2,1,2,3,3,3,2,1,2,3,3,3,2 }
  428.         elseif pylon_order_choice == 3 then
  429.             pylon_template = { 1,2,3,2,3,2,1,2,3,2,3,2,1,2,3,2,3,2,1,2,3,2,3,2 }
  430.         elseif pylon_order_choice == 4 then
  431.             pylon_template = { 1,1,2,2,2,1,1,1,2,2,2,1,1,1,2,2,2,1,1,1,2,2,2,1 }
  432.         elseif pylon_order_choice == 5 then
  433.             pylon_template = { 1,1,2,3,2,1,1,1,2,3,2,1,1,1,2,3,2,1,1,1,2,3,2,1 }
  434.         elseif pylon_order_choice == 6 then
  435.             pylon_template = { 1,2,2,3,2,2,1,2,2,3,2,2,1,2,2,3,2,2,1,2,2,3,2,2 }
  436.         elseif pylon_order_choice == 7 then
  437.             pylon_template = { 1,1,2,2,2,1,1,1,3,3,3,1,1,1,2,2,2,1,1,1,3,3,3,1 }
  438.         elseif pylon_order_choice == 8 then
  439.             pylon_template = { 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2 }
  440.         elseif pylon_order_choice == 9 then
  441.             pylon_template = { 1,2,1,3,1,2,1,3,1,2,1,3,1,2,1,3,1,2,1,3,1,2,1,3 }
  442.         elseif pylon_order_choice == 10 then
  443.             pylon_template = { 1,1,2,2,2,1,1,2,2,2,1,3,3,3,3,1,3,3,3,3,1,2,2,2 }
  444.         elseif pylon_order_choice == 11 then
  445.             pylon_template = { 1,2,3,3,3,2,1,3,2,2,2,3,1,2,3,3,3,2,1,3,2,2,2,3 }
  446.         elseif pylon_order_choice == 12 then
  447.             pylon_template = { 1,2,2,3,2,2,1,3,3,2,3,3,1,2,2,3,2,2,1,3,3,2,3,3 }
  448.         end
  449.  
  450.     elseif anim_shape == "lcurve-1" then
  451.         if pylon_order_choice == 1 then
  452.             pylon_template = { 1,1,1,1,1,2,1,1,1,2,0,0,0,2,1,1,1,1,1,2,1,1,1,1 }
  453.         elseif pylon_order_choice == 2 then
  454.             pylon_template = { 1,1,1,1,1,2,3,3,3,2,0,0,0,2,3,3,3,3,3,2,1,1,1,1 }
  455.         elseif pylon_order_choice == 3 then
  456.             pylon_template = { 3,3,3,3,1,2,1,3,1,2,0,0,0,2,1,3,3,3,1,2,1,3,3,3 }
  457.         elseif pylon_order_choice == 4 then
  458.             pylon_template = { 3,3,1,1,2,2,1,1,1,2,0,0,0,2,1,1,1,1,1,2,2,1,1,3 }
  459.         elseif pylon_order_choice == 5 then
  460.             pylon_template = { 1,2,1,2,1,2,1,2,1,2,0,0,0,2,1,2,1,2,1,2,1,2,1,2 }
  461.         elseif pylon_order_choice == 6 then
  462.             pylon_template = { 1,2,1,2,1,3,1,2,1,3,0,0,0,3,1,2,1,2,1,3,1,2,1,2 }
  463.         elseif pylon_order_choice == 7 then
  464.             pylon_template = { 1,1,1,1,2,2,2,1,1,2,0,0,0,2,1,1,1,1,2,2,2,1,1,1 }
  465.         elseif pylon_order_choice == 8 then
  466.             pylon_template = { 1,1,1,2,2,2,2,2,1,2,0,0,0,2,1,1,1,2,2,2,2,2,1,1 }
  467.         elseif pylon_order_choice == 9 then
  468.             pylon_template = { 1,1,1,2,3,3,3,2,1,2,0,0,0,2,1,1,1,2,3,3,3,2,1,1 }
  469.         elseif pylon_order_choice == 10 then
  470.             pylon_template = { 1,1,1,2,2,3,2,2,1,2,0,0,0,2,1,1,1,2,2,3,2,2,1,1 }
  471.         elseif pylon_order_choice == 11 then
  472.             pylon_template = { 1,2,1,3,1,2,1,3,1,2,0,0,0,2,1,2,1,3,1,2,1,3,1,2 }
  473.         elseif pylon_order_choice == 12 then
  474.             pylon_template = { 1,1,2,2,3,3,1,1,1,2,0,0,0,2,1,1,1,1,1,3,3,2,2,1 }
  475.         end
  476.  
  477.     elseif anim_shape == "tshape-1" then
  478.         if pylon_order_choice == 1 then
  479.             pylon_template = { 1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1 }
  480.         elseif pylon_order_choice == 2 then
  481.             pylon_template = { 1,1,1,0,0,2,2,1,1,1,1,2,2,0,0,1,1,1,1,2,2,2,2,1 }
  482.         elseif pylon_order_choice == 3 then
  483.             pylon_template = { 3,3,1,0,0,2,2,1,3,3,1,2,2,0,0,1,3,3,1,2,2,2,2,1 }
  484.         elseif pylon_order_choice == 4 then
  485.             pylon_template = { 1,1,2,0,0,2,1,1,3,3,1,1,2,0,0,2,1,1,3,3,3,3,3,3 }
  486.         elseif pylon_order_choice == 5 then
  487.             pylon_template = { 2,2,2,0,0,2,2,3,3,3,3,2,2,0,0,2,2,2,2,1,1,1,1,2 }
  488.         elseif pylon_order_choice == 6 then
  489.             pylon_template = { 2,2,2,0,0,2,2,3,1,1,3,2,2,0,0,2,2,2,2,1,3,3,1,2 }
  490.         elseif pylon_order_choice == 7 then
  491.             pylon_template = { 2,1,1,0,0,1,1,2,2,2,2,1,1,0,0,1,1,2,2,3,3,3,3,2 }
  492.         elseif pylon_order_choice == 8 then
  493.             pylon_template = { 1,1,1,0,0,1,3,1,2,2,1,3,1,0,0,1,1,1,2,3,2,3,2,2 }
  494.         elseif pylon_order_choice == 9 then
  495.             pylon_template = { 1,3,2,0,0,2,2,2,3,3,2,2,2,0,0,2,3,1,1,1,1,1,1,1 }
  496.         elseif pylon_order_choice == 10 then
  497.             pylon_template = { 1,1,1,0,0,2,3,1,1,1,1,3,2,0,0,1,1,1,3,2,3,3,2,3 }
  498.         elseif pylon_order_choice == 11 then
  499.             pylon_template = { 1,2,1,0,0,1,2,1,2,2,1,2,1,0,0,1,2,1,3,3,3,3,3,3 }
  500.         elseif pylon_order_choice == 12 then
  501.             pylon_template = { 1,2,1,0,0,1,2,1,3,3,1,2,1,0,0,1,2,1,3,1,3,3,1,3 }
  502.         end
  503.  
  504.     elseif anim_shape == "egg-1" then
  505.         if pylon_order_choice == 1 then
  506.             pylon_template = { 1,1,1,2,2,2,2,2,1,1,1,1,2,2,2,2,2,1,1,1,1,2,2,1 }
  507.         elseif pylon_order_choice == 2 then
  508.             pylon_template = { 1,1,1,2,3,3,3,2,1,1,1,1,2,3,3,3,2,1,1,1,1,2,2,1 }
  509.         elseif pylon_order_choice == 3 then
  510.             pylon_template = { 1,1,2,2,3,3,3,2,2,1,1,2,2,3,3,3,2,2,1,1,2,2,2,2 }
  511.         elseif pylon_order_choice == 4 then
  512.             pylon_template = { 1,2,3,3,2,1,2,1,2,3,3,2,1,2,1,2,3,3,2,1,2,3,3,1 }
  513.         elseif pylon_order_choice == 5 then
  514.             pylon_template = { 1,3,3,3,3,1,2,1,3,3,3,3,1,2,1,3,3,3,3,1,3,3,3,3 }
  515.         elseif pylon_order_choice == 6 then
  516.             pylon_template = { 1,3,1,1,3,1,2,1,3,1,1,3,1,2,1,3,1,1,3,1,3,1,1,3 }
  517.         elseif pylon_order_choice == 7 then
  518.             pylon_template = { 1,3,2,2,3,1,2,1,3,2,2,3,1,2,1,3,2,2,3,1,3,2,2,3 }
  519.         elseif pylon_order_choice == 8 then
  520.             pylon_template = { 1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3 }
  521.         elseif pylon_order_choice == 9 then
  522.             pylon_template = { 1,3,1,1,2,1,2,1,2,2,2,2,1,2,1,2,1,1,3,1,3,1,1,3 }
  523.         elseif pylon_order_choice == 10 then
  524.             pylon_template = { 1,1,2,2,1,1,2,2,3,3,3,3,2,2,1,1,2,2,1,1,2,3,3,2 }
  525.         elseif pylon_order_choice == 11 then
  526.             pylon_template = { 1,2,1,2,1,2,1,2,3,3,3,3,2,1,2,1,2,1,2,1,3,3,3,3 }
  527.         elseif pylon_order_choice == 12 then
  528.             pylon_template = { 1,2,3,3,3,3,3,3,2,1,1,2,3,3,3,3,3,3,2,1,2,1,1,2 }
  529.         end
  530.  
  531.     end
  532.  
  533.     if cur_level_num > 100 then
  534.         h1 = pylon_colour + c_zrand(-40.0,40.0)
  535.         h2 = pylon_colour + c_zrand(-40.0,40.0)
  536.         h3 = pylon_colour + c_zrand(-40.0,40.0)
  537.         h4 = pylon_colour + c_zrand(-40.0,40.0)
  538.     end
  539.  
  540.     load_pylon( pylon_1, h1, 1 )
  541.     load_pylon( pylon_2, h2, 2 )
  542.     load_pylon( pylon_3, h3, 3 )
  543.     load_pylon( "0_0", h4, 0 )
  544.  
  545.     for t = 1, 24, 1 do
  546.         local tt = pylon_template[t]
  547.  
  548.         if cur_level_num < 101 then
  549.             if t <= max_num_pylons then
  550.                 c_pylon_attach( pylon_names[t], t, t,     75.0, 75.0, 75.0,    0.0  )
  551.             else
  552.                 c_pylon_attach(    "0_0", t, t,    100, 100, 100,    0.0 )
  553.             end
  554.         else
  555.             if tt == 3 then
  556.                 c_pylon_attach( pylon_3, t, t,     scale_3_x, scale_3_y, scale_3_z,    h3  )
  557.             elseif tt == 2 then
  558.                 c_pylon_attach( pylon_2, t, t,     scale_2_x, scale_2_y, scale_2_z,    h2  )
  559.             elseif tt == 1 then
  560.                 c_pylon_attach( pylon_1, t, t,    scale_1_x, scale_1_y, scale_1_z,    h1 )
  561.             else
  562.                 c_pylon_attach(    "0_0", t, t,    100, 100, 100,    h4 )
  563.             end
  564.         end
  565.     end
  566.  
  567.     -- add fizz
  568.     local fizz_choice_name = "9_1"
  569. --    if flamer > 10 then
  570.     if demo_level == 1 then
  571.         pylon_choice = c_zrand_int( 3 ) + 1
  572.     else
  573.         pylon_choice = c_zrand_int( 8 ) + 1
  574.     end
  575.         if pylon_choice > 7 then
  576.             fizz_choice_name = "2_1"
  577.         else
  578.             fizz_choice_name = format( "1_%d", pylon_choice )
  579.         end
  580. --    end
  581.  
  582.     if cur_level_num < 101 then
  583.         for t = 1, 8, 1 do
  584.             if t > 7 then
  585.                 fizz_choice_name = "2_1"
  586.             else
  587.                 fizz_choice_name = format( "1_%d", t )
  588.             end
  589.             c_fizz_attach( fizz_choice_name, t, t+1, 55.0, 0.0 )
  590.         end
  591.         c_fizz_attach( fizz_choice_name, 9, 24, 55.0, 0.0 )
  592.     else
  593.  
  594.         h1 = pylon_colour + c_zrand(-50.0,-50.0)
  595. --        h1 = beastie_colour + c_zrand(-90.0,90.0)
  596.         c_fizz_attach( fizz_choice_name, 1, 24, 55.0, h1 )
  597.     end
  598.  
  599.     -- add weblob fizz
  600. --    c_add_fizz_between( "weblob_fizz", "weblob_tiny2", "mainbone", "pylon-", "mainbone", "barrier_damage_gamer", 50.0, 1.0, 28.0, 0.0 )
  601. end
  602.